using MediatR;
using S.O.ErrorCode;

namespace S.O.Api.Write.Application.Command.Medical
{
    /// <summary>
    /// 医疗卡挂失命令
    /// 用于处理医疗卡的挂失业务
    /// </summary>
    public class LostMedicalCardCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 医疗卡号（必填）
        /// </summary>
        public string CardNo { get; set; } = string.Empty;
        
        /// <summary>
        /// 患者ID（必填）
        /// </summary>
        public long PatientId { get; set; }
        
        /// <summary>
        /// 患者姓名（必填）
        /// </summary>
        public string PatientName { get; set; } = string.Empty;
        
        /// <summary>
        /// 身份证号（必填，用于身份验证）
        /// </summary>
        public string IdCard { get; set; } = string.Empty;
        
        /// <summary>
        /// 联系电话（必填，用于身份验证）
        /// </summary>
        public string Phone { get; set; } = string.Empty;
        
        /// <summary>
        /// 挂失原因
        /// </summary>
        public string LostReason { get; set; } = "遗失";
        
        /// <summary>
        /// 操作员
        /// </summary>
        public string Operator { get; set; } = "系统";
        
        /// <summary>
        /// 备注信息
        /// </summary>
        public string? Remarks { get; set; }
    }
}